OpenFlow protocol is a communications protocol that gives a remote controller access to the packet forwarding plane of a network switch or router over the network. It enables the remote controller to determine the routing path of network packets through the network switch by adding, modifying and removing packet matching rules and actions from the packet forwarding (or flow) tables of the network switch as described below. The OpenFlow protocol separates the high level routing decision plane (control path) from the packet forwarding plane (data path) of the network switch, wherein the data path still resides on the network switch while the control path is moved to the separate remote controller, typically a standard server. The switch and the controller communicate with each other via the OpenFlow protocol, which defines types of messages, such as packet-received, send-packet-out, modify-forwarding-table, and get-stats, being exchanged between the network switch and the controller. The OpenFlow protocol thus allows for more sophisticated traffic management of the network switch than what is feasible using access control lists (ACLs) and routing protocols. In addition, OpenFlow protocol allows network switches from different suppliers—often each with its own proprietary interfaces and scripting languages—to be managed remotely using a single, open protocol.
Under the OpenFlow protocol, the data path of the network switch presents a clean flow table, wherein each flow table entry contains a set of fields that include but are not limited to, matching fields with a packet received, priority, counters, instructions for action on the packet (such as send-out-port, modify-field, or drop) based on the matching result, timeouts and cookie for the action (as shown below).
MatchPriorityCountersInstructionsTimeoutsCookiefieldsWhen the network switch receives a packet it has never seen before, for which there are no matching flow table entries, it sends the packet to the controller, which then makes a decision on how to handle this packet. The controller may either drop the packet or add a flow table entry directing the network switch on how to forward similar packets in the future.
Under the OpenFlow protocol, flow table entries are removed from the flow tables either at the request of the controller or using a flow timeout mechanism, which is run by the network switch independently of the controller and is based on the state and configuration of flow entries as shown above. In some embodiments, each flow entry has two associated timers that control the timeout and removal of the entries from the flow table:                Idle timeout timer: if non-zero and idle (e.g., there are no packets) for a specified period of time (measured in number of seconds), the corresponding flow entry is removed from the flow table.        Hard timeout timer: if non-zero, the network switch must record the flow entry's creating/arrival time in the flow table, and use it for eviction from the flow table after a maximum time period.        
Since there are typically several hundred thousand or millions of flow table entries programmed in the flow tables of a network switch, each having multiple individual timers, the potential timers used under the OpenFlow protocol is huge and would put extremely heavy load on the CPU/memory resources of the system (e.g., the controller) to implement and process so many timers via software. As a result, guaranteeing accuracy and predictability of these timers would be extremely difficult. Since large numbers of flow table entries time out at or around the same time, data path traffic for the corresponding flow tables could get impacted due to jitter/latency in handling the timers, leading to undesired networking and/or administration misbehavior. Therefore, there is a need for an improved system and method to enable accelerated implementation of the timers in the network switch under the OpenFlow protocol.
The foregoing examples of the related art and limitations related therewith are intended to be illustrative and not exclusive. Other limitations of the related art will become apparent upon a reading of the specification and a study of the drawings.